.door-guest { width:min(680px,calc(100vw - 24px)); max-height:calc(100dvh - 24px); box-sizing:border-box; padding:18px; border:1px solid var(--border); border-radius:var(--radius,12px); background:var(--panel); color:var(--text); box-shadow:var(--shadow); overflow:auto; font-family:inherit; }
.door-guest[open] { display:grid; grid-template-columns:minmax(150px,.8fr) minmax(0,1.2fr); gap:20px; }
.door-guest::backdrop { background:rgba(0,0,0,.78); backdrop-filter:blur(5px); }
.door-guest .door-guest__portrait { width:100%; min-height:0; height:380px; max-height:65dvh; border:1px solid var(--border); border-radius:8px; overflow:hidden; background:radial-gradient(ellipse at 50% 35%,var(--panel-soft,#202b1d),#080c09); }
.door-guest__copy { min-width:0; display:flex; flex-direction:column; justify-content:center; }
.door-guest__copy h2 { margin:0 0 10px; font-size:1.1rem; line-height:1.3; }
.door-guest__request { margin:0 0 20px; padding-bottom:16px; border-bottom:1px solid var(--border); font-size:.9rem; line-height:1.5; color:var(--text); }
.door-guest__note { margin:12px 0 0; font-size:.72rem; line-height:1.4; color:var(--muted); }
.door-guest__actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.door-guest__action { display:block; position:relative; }
.door-guest__action:nth-child(-n+2) { grid-column:1 / -1; }
.door-guest .button { width:100%; min-height:44px; font-family:inherit; }
.door-guest .button--ghost { background:transparent; border-color:var(--border); color:var(--text); }
.door-guest .door-guest__pink { color:#fff0f6; background:linear-gradient(180deg,#9b4d76,#713853); border-color:#bb7898; }
.door-guest button:disabled { pointer-events:none; }
.door-guest__hint { display:none; position:absolute; z-index:5; bottom:100%; left:0; right:0; padding:10px; background:#050705; border:1px solid #8d8263; font-size:.85rem; }
.door-guest__action:hover .door-guest__hint,.door-guest__action:focus .door-guest__hint { display:block; }
@media(max-width:540px) { .door-guest[open] { grid-template-columns:minmax(0,1fr); gap:14px; padding:14px; } .door-guest .door-guest__portrait { height:220px; } .door-guest__request { margin-bottom:12px; padding-bottom:12px; } }
